STAR-CCM+导出的温度分布数据如下表,含有节点坐标和温度。
Temperature (K) | X (m) | Y (m) | Z (m) |
---|---|---|---|
511.3283 | 0.721317 | -0.53667 | 1.1638 |
511.4594 | 0.7125 | -0.5275 | 1.1638 |
512.3228 | 0.7025 | -0.52753 | 1.1638 |
511.8328 | 0.7075 | -0.52753 | 1.1638 |
... | ... | ... | ... |
在ANSYS里根据结构模型划分网格(自己随便画的一个模型),使用以下命令流导出所有节点坐标。
121/prep7
2ALLS
3*get,ncount,node,,COUNT !总节点数
4*get,nnum,node,,num,MIN !最小节点编号
5*cfopen,'node',csv !打开待输出文件
6*cfwrite,'nx,ny'
7*do,i,1,ncount !依次写入节点坐标
8*vwrite,nx(nnum),ny(nnum)
9(f12.6,',',f12.6)
10nnum=NDNEXT(nnum)
11*enddo
12*cfclos
导出结果如下表所示:
nx | ny |
---|---|
0.9 | 0 |
0.899945 | -0.00999 |
0.899778 | -0.01998 |
0.899501 | -0.02997 |
0.899113 | -0.03995 |
... | ... |
将上述数据导入Matlab,如下scatteredInterpolant
函数进行插值:
181% Xm,Ym,TemperatureK原始温度分布数据,构造插值函数
2f=scatteredInterpolant(Xm,Ym,TemperatureK);
3% 插值得到新节点的温度值
4newTemperature=f(nx,ny);
5subplot(1,2,1)
6scatter(Xm,Ym,5,TemperatureK,'filled');
7axis equal
8xlim([-1,1]);
9ylim([-1,1]);
10subplot(1,2,2);
11scatter(nx,ny,5,newTemperature,'filled');
12axis equal
13xlim([-1,1]);
14ylim([-1,1]);
15%写入文件
16fid=fopen('node_temp.csv','wt');
17fprintf(fid,'%f\n',newTemperature);
18fclose(fid);
得到原始温度分布与新节点的温度分布:
使用以下命令流再将上述得到的节点温度导入ANSYS:
111/prep7
2ALLS
3*get,ncount,node,,COUNT
4*get,nnum,node,,num,MIN
5*dim,node_temp,array,ncount,1
6*vread,node_temp,'node_temp','csv',,ijk
7(f12.6)
8*do,i,1,ncount
9bf,nnum,temp,node_temp(i)
10nnum=NDNEXT(nnum)
11*enddo
得到导入的温度分布如下图所示: